/* FreeSpace.c (DiskInfo()) This routine returns the free space on each device (also RAM:) in bytes. If it does return a negative value an error was occured (ie. disk not validated,...). */ extern APTR mempool; LONG DiskInfo( STRPTR diskname ) { LONG freedisk; DiskData *dd; if( Strnicmp( diskname, "RAM:", 4) ) { if( (dd = AllocMemH(mempool, sizeof(struct InfoData))) ) { if( (dd->lock = Lock( diskname, SHARED_LOCK )) ) { Info( dd->lock, dd->id ); UnLock( dd->lock ); if( dd->id->id_DiskState == ID_VALIDATED ) freedisk = (dd->id->id_NumBlocks - dd->id->id_NumBlocksUsed) * dd->id->id_BytesPerBlock; else freedisk = -dd->id->id_DiskState; } else freedisk = -1; FreeMemH( dd ); } else freedisk = -2; } else freedisk = AvailMem( MEMF_ANY ); return freedisk; }